Обробка помилок у Spring Boot

📌 Використання @ExceptionHandler

Щоб обробляти виняткові ситуації в контролерах, можна використовувати @ExceptionHandler.

                
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestControllerAdvice;

@RestControllerAdvice
public class GlobalExceptionHandler {
    @ExceptionHandler(BookNotFoundException.class)
    @ResponseStatus(HttpStatus.NOT_FOUND)
    public String handleBookNotFound(BookNotFoundException ex) {
        return ex.getMessage();
    }
}
                
            

🛠 Створення кастомного винятку

                
public class BookNotFoundException extends RuntimeException {
    public BookNotFoundException(String message) {
        super(message);
    }
}
                
            

Використання у сервісному шарі:

                
public Book getBookById(Long id) {
    return bookRepository.findById(id)
        .orElseThrow(() -> new BookNotFoundException("Книга з ID " + id + " не знайдена"));
}
                
            

Назад Далі